package com.cdut.beans;

import com.cdut.beans.Customer;
import com.cdut.beans.Order;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;


public class OneToManyTest {
    @Test
    public void test1(){
        Configuration configure = new Configuration().configure();
        SessionFactory sessionFactory = configure.buildSessionFactory();
        Session session = sessionFactory.getCurrentSession();


        session.beginTransaction();
//        1.创建一个客户
        Customer c = new Customer();
        c.setName("李哥");
//        创建两个订单表
        Order o1 = new Order();
        o1.setAddress("北京");
        o1.setPrice(10000d);
        Order o2 = new Order();
        o2.setAddress("广州");
        o2.setPrice(9000d);
//        描述关系----订单属于某个客户
        o1.setCustomer(c);
        o2.setCustomer(c);
//        描述关系---客户有多个订单
        c.getOrders().add(o1);

        c.getOrders().add(o2);
//        加入的订单在set中无法应用
//       这个错误的问题描述是add (org.hibernate.criterion.Order)  in Set cannot be applied  to  (com.cdut.beans.Order)
//        怎么解决？？？？？？
//        先保存客户在存订单
        session.save(c);
        session.save(o1);
        session.save(o2);
        session.getTransaction().commit();
        session.close();
    }

}
